home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Biodiversity of Illinois 2: Woodland Habitats
/
Biodiversity of Illinois 2 - Woodland Habitats.iso
/
mac
/
casts
/
PDFxtraBehaviors.cst
/
00010_Script_PDF_GetNumberOfPages
< prev
next >
Wrap
Text File
|
2006-07-11
|
6KB
|
184 lines
-- Get Number of Pages
Property pEvent, pSprite, pDestMember, pAlertFlag
on doGetNbrPages me
-- put the total pages into the member specified
myMember = me.ExtractMemberFromString(pDestMember)[2]
myMember.text = string(PDF_GetNumberOfPages(sprite pSprite))
if PDF_status(sprite pSprite) then alert "PDF Behavior Error"&RETURN&PDF_error(sprite pSprite)
end doGetNbrPages
on mouseUp me
if (pEvent = #mouseUp) then doGetNbrPages(me)
end mouseUp
on mouseDown me
if (pEvent = #mouseDown) then doGetNbrPages(me)
end mouseDown
-- standard behavior stuff --
on getPropertyDescriptionList me
set defaultValues = GetDefaultValues (me)
set pdfSpriteList = getProp (defaultValues, #spriteList)
set defSprite = getProp (defaultValues, #defaultSprite)
if (defSprite=0) then
if the ticks - pAlertFlag > 10 then
alert "Please create a sprite of type PDF first."
end if
set pAlertFlag = the ticks -- The ticks when the user clicked "OK"
exit
end if
-- retrieve all members of type text, field or Flashcomponent
lTextFields = me.GetMembers([#text, #field, #flashcomponent])
if (lTextFields = []) then
if the currentSpriteNum then
alert "You need at least one member of type #field or #text to use this behavior."
end if
exit
end if
set p_list = [:]
addprop p_list, #pEvent, [ #comment: "Event", #format:#symbol, #range:[#mouseUp, #mouseDown], #default:#mouseUp]
addprop p_list, #pSprite, [ #comment: "PDF Sprite is in channel:", #format:#symbol, #range:pdfSpriteList, #default:defSprite]
if (lTextFields.count = 0) then
addprop p_list, #pDestMember, [ #comment: "Put result in:", #format: #string, #default:"<no named fields or text members available>"]
else
addprop p_list, #pDestMember, [ #comment: "Put result in:", #format:#member, #default:lTextFields[1], #range:lTextFields]
end if
return p_list
end
on getBehaviorDescription
tmp = "Retrieve the number of pages in the current PDF document to designated Director field." & RETURN& "All platforms."
tmp = tmp &RETURN&RETURN& "--- PARAMETERS ---" &RETURN& " - Event: mouseUp or mouseDown."
tmp = tmp &RETURN& " - PDF Sprite is in channel: which channel contains the PDF Sprite."
tmp = tmp &RETURN& " - Put result in: the name of a text or field cast member to store the number in."
tmp = tmp &RETURN&RETURN& "Free to use and abuse. (c)1999-2005, Integration New Media, Inc." &RETURN& "Thanks to James Newton for his suggestions"
return tmp
end
on getBehaviorTooltip
tmp = "Retrieve the number of pages in the current PDF document" &RETURN& "to designated Director field." & RETURN& "All platforms."
return tmp
end
-- utils --
on GetDefaultValues me
if the currentSpriteNum then
set spriteList = GetSpriteList (me #PDF)
if count (spriteList) then
set defaultSprite = getAt (spriteList, 1)
else
set defaultSprite = 0
end if
return [#spriteList: spriteList, #defaultSprite: defaultSprite]
else -- the currentSpriteNum = 0
-- Director is merely recompiling this script: return dummy values
return [#spriteList: [1], #defaultSprite: 1]
end if
end
on GetSpriteList me, memberType
-- return list of sprites of type memberType in current frame
global version
if (char 1 of version = 6) then
set maxSprite = 120
else
set maxSprite = the lastChannel
end if
set aList=[]
repeat with i = 1 to maxSprite
set spriteMember = the member of sprite i
-- if (string(m) contains "member 0") then next repeat -- unnecessary
if (the type of spriteMember = memberType) then -- (JN) Line break
append (aList, i)
end if
end repeat
return aList
end GetSpriteList
on GetMembers me, theMembersTypeNeeded
lResult = []
lCastLib = the number of castLibs
repeat while lCastLib -- repeat through all linked castlibs
lMemberNum = the number of members of castLib(lCastLib)
repeat while lMemberNum -- repeat through all members of the current castlib
lMemberType = member(lMemberNum, lCastLib).type
if (theMembersTypeNeeded.getOne(lMemberType) > 0) then -- check if the member's type is contained in theMembersTypeNeeded
lName = member(lMemberNum, lCastLib).name
if (lName <> "") then
lResult.AddAt(1, lName&&"(member"&&lMemberNum&&"of castlib"&&lCastLib&")") -- Add the member to the list
end if
end if
set lMemberNum = lMemberNum - 1 -- check the next member
end repeat
set lCastLib = lCastLib - 1 -- check the next castlib
end repeat
return lResult
end GetMembers
--
-- Extract name and reference to a member contained in a string
-- in a list [<name>, <(member xxx of castlib yyy)>]
-- the String contains a reference to a member formatted like
-- "<member name> (member xxx of castlib yyy)"
--
on ExtractMemberFromString me, theString
lResult = ["", VOID]
if (StringP(theString)) then -- check if theString contains a string
lPos = offset("(member ", theString) -- find the offset of the substring "(member "
if (lPos > 0) then -- substring found = theString is a valid member reference
lName= ""
if (lPos > 2) then
lName = theString.char[1..lPos-2]
if (lName) = "<no name>" then
lName = ""
end if
end if
lMember = value(theString.char[lPos..theString.chars.count])
-- check if the member name and member reference are consistent
if (lMember <> VOID) then
if (lMember.name <> lName) then -- the user probably moved the cast member, we'll try to find it
if (lName <> "") then -- the member didn't have a name, so it's useless to look for it
lMember = member(lName)
else
lMember = VOID
end if
end if
end if
lResult = [lName, lMember]
end if
end if
return lResult
end ExtractMemberFromString